(define (adjoin-position position current-position-list)
  (append current-position-list position))

(define (empty-board)
  '())

;没有验证
(define (safe? k positions)
  (define (find-first pred items) 
    (cond ((null? items) nil) 
          ((pred (car items)) 
           (car items)) 
          (else (find-first pred (cdr items)))))
  (map (lambda (x) (list x positions))
       (filter (lambda (row) (if (not (= '() (find-first row (map car rest-of-queens))))
                               '()
                               row))
               (map (lambda (x) (list x k))
                    (enumerate-interval 1 (- k 1)))) ))
